package myTeam.timeShop.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import myTeam.timeShop.bean.TbComment;
import myTeam.timeShop.dao.CommentDao;
@Repository("commentDao")
public class CommentDaoImpl implements CommentDao {
	@Autowired
	SessionFactory sessionFactory;
	private Session getSession(){
		return this.sessionFactory.getCurrentSession();
	}
	@Override
	public TbComment load(String id) {
		// TODO 自动生成的方法存根
		return this.getSession().load(TbComment.class, id);
	}

	@Override
	public TbComment get(String id) {
		// TODO 自动生成的方法存根
		return this.getSession().get(TbComment.class, Integer.valueOf(id));
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<TbComment> findAll() {
		// TODO 自动生成的方法存根
		return this.getSession().createQuery("from TbComment").list();
	}

	@Override
	public void persist(TbComment entity) {
		// TODO 自动生成的方法存根
		this.getSession().persist(entity);
	}

	@Override
	public String save(TbComment entity) {
		// TODO 自动生成的方法存根
		return this.getSession().save(entity).toString();
	}

	@Override
	public void saveOrUpdate(TbComment entity) {
		// TODO 自动生成的方法存根
		this.getSession().saveOrUpdate(entity);
	}

	@Override
	public void delete(String id) {
		// TODO 自动生成的方法存根
		this.getSession().delete(id);
	}

	@Override
	public void flush() {
		// TODO 自动生成的方法存根
		this.getSession().flush();
	}
	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.CommentDao#getAllMyNoSeeComment(java.lang.String)
	 */
	@Override
	public List<TbComment> getAllMyNoSeeComment(String filterUserId) {
		// TODO 自动生成的方法存根
		
		@SuppressWarnings("unchecked")
		List<TbComment> list = this.getSession().getNamedQuery("getAllMyNoSeeComment").setString(0, filterUserId).list();
		for(TbComment tbComment:list){
			tbComment.setCommentIsSaw(1);
			this.save(tbComment);
			this.flush();
		}
		return list;
	}

}
